Skip to main content

Full text of "Net Yaroze Documents"

See other formats


Net Yaroze File Formats 


© 1997 Sony Computer Entertainment 
Publication date: May 1997 


Sony Computer Entertainment America 
919 E. Hillsdale Blvd., 2nd Flr 
Foster City, CA 94404 


Sony Computer Entertainment Europe 
Waverley House 

7-12 Noel Street 

London W1V 4HH, England 


The Net Yaroze File Formats manual is supplied pursuant to and subject to the terms of the Sony Computer 
Entertainment PlayStation™ License and Development Tools Agreements or the Developer Agreement. 


The Net Yaroze File Formats manual is intended for distribution to and use by only Sony Computer 
Entertainment licensed Developers and Publishers in accordance with the PlayStation™ License and 
Development Tools Agreements or the Developer Agreement. 


Unauthorized reproduction, distribution, lending, rental or disclosure to any third party, in whole or in part, 
of this book is expressly prohibited by law and by the terms of the Sony Computer Entertainment 
PlayStation™ License and Development Tools Agreements or the Developer Agreement. 


Ownership of the physical property of the book is retained by and reserved by Sony Computer 
Entertainment. Alteration to or deletion, in whole or in part, of the book, its presentation, or its contents is 
prohibited. 


The information in the Net Yaroze File Formats manual is subject to change without notice. The content of 
this book is Confidential Information of Sony Computer Entertainment. 


PlayStation and PlayStation logos are trademarks of Sony Computer Entertainment. All other trademarks 
are property of their respective owners and/or their licensors. 


Table of Contents 


About this Manual 


About this Release v 
Relate Documents v 
Manual Structure v 
Typographic Conventions v 
Ordering Information vi 
Chapter 1: 3D Graphics 1-1 
RSD: Model Data 1-2 
TMD: Modeling Data for OS Library 1-10 
Chapter 2: 2D Graphics 2-1 
TIM: Screen Image Data 2-2 
Chapter 3: Sound 3-1 
SEQ: PS Sequence Data 3-2 
VAG: PS Single Waveform Data 3-3 
VAB: PS Sound Source Data 3-3 


File Formats 


iv Table of Contents 


File Formats 


About this M anual 





About this Manual 


About this Release 


This is the first release of the File Formats manual for Net Yaroze. The purpose of this new book is to 
provide a single authoritative reference to the PlayStation file formats available for use in Net Yaroze games. 


Related Documentation 
The following volumes in the Yaroze documentation set contain related information: 


Net Yaroze User's Guide 
Net Yaroze Library Reference 


Typographic Conventions 


Certain Typographic Conventions are used through out this manual to clarify the meaning of the text. The 
following details the specific conventions used to represent literals, arguments, keywords, etc. 


The following conventions apply to all narrative text outside of the structure and function descriptions. 
Convention Meaning 


A revision bar. Indicates that information to the left or right of the bar has been 
changed or added since the last release. 


courier Indicates literal program code. 
Bold Indicates a document, chapter or section title. 
The following conventions apply within structure and function descriptions only: 
Convention Meaning 
Medium Bold Denotes structure or function types and names. 
Italic Denotes function arguments and structure members. 


{ }Denotes the start and end of the member list in a structure declaration. 


File Formats 


vi 


About this Manual 


File Formats 





Chapter 1: 
3D Graphics 





File Formats 


1-2 


3D Graphics 





RSD: Model Data 


The RSD format for 3D model data is really a meta file; a collection of separate file formats that are used 
together to describe a single 3D model. There are four different types of files: 


RSD file: Describes relationships between PLY/MAT/GRP and texture files. 
PLY file: Describes positional information on vertices of a polygon. 

MAT file: Describes material information on a polygon. 

GRP file: Describes grouping information. 


eee o 


Information on how the data in the separate files is used together is specified by the RSD file. Because 
descriptive information is stored in multiple files, it’s possible to have objects using different materials in a 
PLY file. 


All files are ASCII text files with lines delimited by LF or CR/LF. Any line starting with a “#’ is treated as a 
comment. 


RSD File 


The RSD file stores information on combinations of PLY, MAT and GRP files constituting a 3D object. A set 
of files is used to describe a single 3D object. 


Figure 1-1: RSD File Structure 


ID 





PLY file specification 





MAT file specification 





GRP file specification 





Texture count specification 





Texture file specification 











Sample RSD File Contents 


The following gives a simple example of the RSD file. 


@RSD940102 
PLY=sample.ply 
MAT=sample.mat 
GRP=sample.grp 
NTEX=3 

TEX [O]=texture.tim 
TEX[1]=texture2.tim 
TEX [2]=texture3.tim 














File Formats 


3D Graphics 1-3 


ID 
The ID is composed of a character string that indicates the version of the RSD file format, being 
"@RSDnnnnnn" (where nnnn is a number). The current version is "@2SD940102". 


PLY File 
PLY = (File name of PLY). 


This is SAMPLE. PLY in the example. 





MAT File 
MAT = (File name of MAT). 


This is SAMPLE . MAT in the example. 





GRP File 
GRP = (File name of GRP). 


This is SAMPLE.GRP in the example. 





Texture Count 
Specifies the number of textures used. 


NTEX = (Number of textures) 


This is 3 in the example. 


Texture File 

Specifies an image data file in the TIM format to be used as the texture, and the same number of texture 
files as a value specified by above NTEX. (Note that while there are three in the example there can be as 
many as required.) This block does not exist in the RSD file for a model that uses no textures. 


TEX[n] = (n-th texture file name) 


This is “TEXTURE.TIM”, “TEXTURE2.TIM”, and “TEXTURE3.TIM” in our example. The filename 
specifications must follow the appropriate format for the development system being used (MS-DOS, UNIX, 
Macintosh, etc.). Because of this, care should be taken when transferring files between platforms. 


PLY File 


The PLY file stores the positions of the vertices of polygons. The coordinate system for the PLY file is the 
same as for the extended library (libgs), with the X axis (forward) representing the right screen, the Y axis 
the bottom, and the Z axis the depth. 


The direction (obverse or reverse) of a single-faced polygon is determined by the order in which the vertices 
are described in a polygon group. The obverse of the polygon is defined as the plane for which the vertices 
of a polygon are described clockwise. 


Figure 1-2: PLY File Structure 


ID 





Data length record 





Vertex group 





Normal group 





Polygon group 





File Formats 


1-4 3D Graphics 


Sample PLY File C ontents 
The following gives a simple example of a PLY file:P 

























































































@PLY940102 
# Number of Items 
8 12 12 
# Vertex 
0 0 0 
O 0 100 
0 100 0 
O 100 100 
100 0 
100 0 100 
100 100 0 
100 100 100 

Normal 
0.000000E+00 0.000000E+00 -1.0000 00 
0.000000E+00 0.000000E+00 -1.0000 00 
L.0O0000E+00 0.000000E+00 -0.0000 00 
1.000000E+00 0.000000E+00 0.000000E+00 
0.000000E+00 0.000000E+00 1.00000 0 
0.000000E+00 0.000000E+00 1.000000E+00 
-1.000000E+00 -0.000000E+00 -0.000000E+00 
-1.000000E+00 0.000000E+00 0.000000E+00 
-0.000000E+00 1.000000E+00 0.000000E+00 
0.000000E+00 1.000000E+00 0.000000E+00 
0.000000E+00 -1.000000E+00 0.000000E+00 
0.000000E+00 -1.000000E+00 0.000000E+00 
# Polygon 
062000000 
060401110 
076402220 
Ory 4: SPO" 813" 3°0 
037504440 
0-3 Sele 0: 25.5: 5-0 
023106660 
-2 10 0. 77 7-0 
073208 8 8 0 
OT 26. 0N-9: 99°90 
040101010 10 0 
Or A yds 5- Orv EL LI 0 


This is a character string representing the version of a PLY file format, being "@PLYnnnnnn" (where nnnn is 
a number). The present version is "@PLY 940102". 


Data Length Record 


Describes the number of data lines for the subsequent three data blocks. Items on each line are delimited 
by a tab or space character. In our sample, we specify 8 lines of data for the VERTEX group, and 12 lines 
each for the NORMAL and POLYGON groups. 


Figure 1-3: PLY File Data Length Record 


Number of vertices Number of normals Number of polygons 


A vertex group is composed of three floating-point values representing coordinates of a vertex. One line 


Vertex Group 


serves one vertex. 


File Formats 


3D Graphics 1-5 


Figure 1-4: Vertex Descriptor for PLY File 


The normal is the direction used to calculate light shading. Thus the normal can be either perpendicular to 
a polygon’s flat surface, the ‘flat normal’ (to give flat light shading), as in this example, or perpendicular to 
the vertex, the ‘vertex normal’, where three polygons join (giving gouraud shading). 


Normal Group 


A normal group is composed of three floating-point values representing the components of a normal 
vector. 


Figure 1-5: Normal Descriptor for PLY File 


A polygon group is composed of a flag for representing the type of a polygon, and eight parameters 
constituting the polygon. The meaning of the parameters varies with the type of polygon specified in the 
flag. 


Polygon Group 


Figure 1-6: PLY File Polygon Descriptor 


Parameter #1 Parameter#2 | 0. | Parameter #3 


bit 7 (MSB) 0 (LSB) 
T 
Flag bit configuration Y 
P 


Polygon (Triangle or Quadrangle) 

The parameter section describes the vertices and normals for the polygon. Each vertex value is an integer 
index, numbered from zero, to the proper position of the vertex data within the vertex group. Normal values 
are a similar index into the normal group. 


For a polygon to be subjected to flat shading, the normal of each vertex has the same value, and the value 
of the first vertex is adopted. For a polygon to be subjected to smooth shading gourand, the normal of 
each vertex has a different value. 


The flag is a hexadecimal integer value ( although not prefixed with “Ox”, as would be expected) that 
specifies the type of polygon. Fora triangular polygon, the data for the fourth vertex and normal are 
assigned a value of zero. For a quadrangular polygon, the vertices are described in the proper order so that 
the first three vertices form a triangle, and the second through fourth vertices form another triangle (i.e. to 
subdivide the quad as shown in Figure 2-7). 


Figure 1-7: Vertex ordering for quad subdivision 
1 2 


[00] 
> 


File Formats 


1-6 


3D Graphics 


Figure 1-8: Polygon 


Straight line 
The parameter section describes the vertex numbers of two end points. 


Figure 1-9: Straight Line 


Sprite 


A sprite in model data is rectangular image data located in a 3D space. It can be considered to bea 
textured polygon always facing the visual point. 


The parameter section describes vertices indicating sprite positions, and the width and height of images 
(sprite patterns). 


Figure 1- 10: Sprite 


MAT File 


The MAT file defines the color and shading for each polygon. 
Figure 1-11: MAT File Structure 


ID 





Number of materials 





Material descriptor 














Sample MAT File Contents 
The following gives a simple example of the MAT file: 


MAT940801 

Number of Items 

10 

# Materials 

0-5 0E C3525 .51: 20 5» 25:9 

6 0GT1 100 25 71 40 25 0 0 
7 0 GT1 10 30 20 75 40 25 0 0 
8 O GT 1 18 73 30 79 40 25 0 0 
9 0GTi1 12 23 29 77 40 2500 
10 OF T11813 75 72 40 25 00 
11 OF TO 22 10 24 74 40 25 00 
12 OF T 0 30 39 41 79 40 25 0 0 








File Formats 


3D Graphics 1-7 


13 1 FDO 116 47 118 77 69 46 69 77 30 187 187 
14 1 F HO 69 46 69 77 17 45 15 77 101 210 138 52 211 188 101 210 
ID 
This is a character string representing the version of a MAT file format, being "@MATnnnnnn" (where nnnn 
is a number). The present version is "@MAT940801". 
New attributes of colored texture and gradation texture unavailable to the past format (@MAT940102) are 
supported in @MAT940801. 
Number of Items 


Describes the number of subsequent material descriptors (lines). 


Material Descriptor 
Specifies a polygon and describes material information on the polygon. 


Figure 1- 12: Material Descriptor 


Polygon no. Shading pmo 


Polygon number 
This is an index (starting from zero) for a polygon group described in a PLY file. Using a range specification 
allows two or more polygons to be described in one line. See Table 2-1. 


Table 1-1: Polygon number 








Description Polygon of interest 
1 1 only 

0-5 012345 

2,4,6 246 





Flag 
This is a hexadecimal integer representing the type of a polygon. The flag is not provided with a prefix of 
'0x'. The following gives the meaning of each bit. 


Bit 0: Light source calculation mode 
0: Light source calculation supported 
1: Fixed color 


With light source calculation supported, the rendering color is determined by the angle between the 
direction of the light source and the surface of the polygon. Note that for fixed color, the color is constant 
irrespective of the direction of the light source. 


Bit 1: Flag for Back face Culling 
0: Single-faced polygon 
1: Double-faced polygon 


Bit 2: Flag for Semitransparent 
0: Opaque 
1: Semitransparent 


With the flag set at 1, the polygon with no texture is always made to be semitransparent, and the polygon 
with texture is made to be semitransparent/opaque/ transparent depending on the STP bit of texture data. 


Bits 3 to 5: Rate of semitransparency 
000: 50% back +50% polygon 
001: 100% back +100% polygon 
010: 100% back - 100% polygon 


File Formats 


1-8 3D Graphics 


011: 100% back + 25% polygon 
1XX: reserved 


The current library does not provide the capability to change the semitransparency rate of a polygon with 
no texture. 


Bits 6 to 7: Reserved (Must be 0) 


Shading 
This is an ASCII character indicating the shading mode. 


“F” = Flat shading (shading is based on the normal for the first vertex of the polygon, as specified in the PLY 
file) 
“G” = Smooth shading 


Material information 
The format of the remainder of each line is different dpending on the material type. There are several 
different material types. Each is designated by a special type code, as follows: 








Table 1-2 
Type Meaning 
C Colored polygon/straight line, no texture 
G Gradient filled polygon/straight line, no texture 
T Textured polygon/sprite 
D Colored textured polygon 
H Gradient (shaded) textured polygon 





Figure 1- 13: Texture not Supported (Colored Polygon/Straight Line) 


TYPE R G B 


TYPE: Material type, whose value is "C" 
R, G, B: RGB components of polygon color (0 to 255) 


Figure 1- 14: Texture not Supported (Gradation colored polygon/straight line) 


TYPE: Material type, whose value is "G" 
Rn, Gn, Bn: RGB components of the n-th vertex. For a triangular polygon, 
the RGB value of the fourth vertex is 0, 0, 0. 


Figure 1- 15: Textured Polygon/S prite 


TYPE: Material type, whose value is "T" 

TNO: TIM data file to be used (Texture number described in the RSD file) 

Un, Vn: Position of vertex n in the texture space. For a triangular polygon, 
the value (U3, V3) of the fourth vertex is zero. 


Figure 1-16: Colored Textured Polygon 





TYPE: Material type, whose value is "D" 
TNO: TIM data file to be used. (Texture number described in the RSD file) 


File Formats 


3D Graphics 1-9 


Un, Vn: Position of vertex n in the texture space. For a triangular polygon, the value (U3, V3) of the 
fourth vertex is zero. 
R,G,B: RGB components of polygon color (0 to 255) 


*The colored textured polygon is used to make the texture of a polygon bright without light source 
calculation. This type allows the three-dimensional drawing of a textured object without light source 
calculation. It is valid only in the fixed color light source calculation mode. 


Figure 1- 17: Gradation Textured Polygon 


TYPE: Material type, whose value is "H" 
TNO: TIM data file to be used. (Texture number described in the RSD file) 
Un, Vn: Position of vertex n in the texture space. For a triangular polygon, 


the value (U3, V3) of the fourth vertex is zero. 
Rn, Gn, Bn: RGB components of the n-th vertex (N =0 to 3). For a triangular 
polygon, the RGB value of the fourth vertex is 0, 0, 0. 


*The gradation textured polygon is used to provide the same effect as textured smooth shading without 
light source calculation. This type is valid only in the fixed color light source calculation mode. 


GRP File 


A group of polygons in the PLY file can be assigned a name. For example, the polygons used to make up a 
steering wheel can be grouped and given the name ‘wheel’. 


Thus, a group of polygons can be operated by the material editor, and certain polygons can be accessed 
from the program. 


Figure 1-18: GRP File Structure 


ID 





Number of groups 





Group descriptor 








ID 
This is a character string representing the version of a GRP file, being "@GRPnnnnnn" (where nnnn is a 
number). The current version is "@GRP 940102". 

Number of Groups 


Covers the number of subsequent group descriptors. 


Group Descriptor 
Defines the configuration of a group. A group descriptor is composed of two or more lines. 


File Formats 


1-10 3D Graphics 


Start line 
Figure 1-19: GRP Descriptor (Start line) 


Polygon No. line count) Number of polygons 


Group name: Name assigned to a group 
Polygon No. line count: Number of subsequent lines for polygon No. description 


Number of polygons: Number of polygons belonging to a group 


Subsequent line (for polygon No. description) 
Specifies the numbers of polygons belonging to a group. The value indicates the position of a polygon in 
the PLY file. Range specification allows two or more polygons to be described in one line. 








Table 1-3 
Description Polygon of interest 
1 1 only 
3-7 34567 
2,4,6 246 








TMD: Modeling Data for OS Library 


The TMD format contains 3D modeling data which is compatible with the PlayStation expanded graphics 
library (libgs). TMD data is downloaded to memory and may be passed as an argument to functions 
provided by LIBGS. TMD files are created using the RSDLINK utility, which reads an RSD file created by the 
SCE 3D Graphics Tool or a comparable program. 


The data in a TMD file is a set of graphics primitives— polygons, lines, etc.— that make up a 3D object. A 
single TMD file can contain data for one or more 3D objects. 


Coordinate Values 


Coordinate values in the TMD file follow the 3D coordinate space handled by the 3D graphics library. The 
positive direction of the X axis represents the right, the Y axis the bottom, and the Z axis the depth. The 
spatial coordinate value of each object is a signed 16-bit integer value ranging from -32768 to +32767. 


In the 3D object design phase and within the RSD format, the vertex information is stored as a floating point 
value. Conversion from RSD into TMD involves converting and scaling vertex values as needed. The scale 
used is reflected in the object structure, described later, as the reference value. This value can provide an 
index for mapping from object to world coordinates. The current version of LIBGS ignores the scale value. 


File Format 


TMD files are configured by 4 blocks. They have 3 dimensional object tables, and 3 types of data entities— 
PRIMITIVE, VERTEX, and NORMAL— which configure these. 


File Formats 


3D Graphics 1-11 


Figure 1-20: TMD File Format 





HEADER 
OB) TABLE SECTION 








PRIMITIVE SECTION 





VERTEX SECTION 





NORMAL SECTION 











HEADER 
The header section is composed of three word (12 bytes) data carrying information on data structure. 


Figure 1-21: Structure of Header 


ID 





FLAGS 





NOB} 


ID: Data having 32 bits (one word). Indicates the version of a TMD file. The current version is 
0x00000041. 


FLAGS: Data having 32 bits (one word). Carries information on TIM data configuration. The least 
Significant bit is FIXP. The other bits are reserved and their values are all zero. The FIXP bit 
indicates whether the pointer value of the OBJ ECT structure described later is a real address. A 
value of one means a real address. A value of zero indicates the offset from the start. 


NOBJ: Integral value indicating the number of objects 


OB) TABLE 
The OBJ TABLE block is a table of structures holding pointer information indicating where the substance of 
each object is stored. Its structure is as shown below. 
Figure 1-22: OBJ TABLE structure 


OBJECT #1 
OBJ ECT #2 




















The object structure has the following configuration: 


struct object 

{ 
u_long *vert_top; 
u_long n_vert; 
u_long *normal top; 
u_long n_normal; 
u_long *primitive top; 
u_long n primitive; 
long scale; 





} 
(Explanation of members) 


vert_top: Start address of a vertex 
n_vert: Number of vertices 
normal_top: Start address of a normal 
File Formats 


1-12 3D Graphics 


n_normal: Number of normals 
primitive _top: Start address of a primitive 
n_primitive: | Number of primitives 


Among the members of the structure, the meanings of the pointer values (vert_top, normal_top, 
primitive_top) change according to the value of the FIXP bit in the HEADER section. If the FIXP bit is 1, they 
indicate the actual address, and if the FIXP bit is 0, they indicate a relative address taking the top of the 
OBJ ECT block as the 0 address. 


The type of the scaling factor is "signed long", and its value raised to the second power is the scale value. 
That is to say, if the scaling factor is 0, the scale value is an equimultiple; if the scaling factor is 2, the scale 
value is 4; if the scaling factor is -1, the scale value is 1/2. Using this value, it is possible to return to the 
scale value at the time of design. 

PRIMITIVE 


The PRIMITIVE section is an arrangement of the drawing packets of the structural elements (primitives) of 
the object. One packet stands for one primitive (see Figure 2-23). 


The primitives defined in TMD are different from the drawing primitives handled by libgpu. A TMD primitive 
is converted to a drawing primitive by undergoing perspective transformation processing performed by the 
libgs functions. 


Each packet is of variable length, and its size and structure vary according to the primitive type. 
Figure 1- 23: Drawing Packet General Structure 
31(MSB) O(LSB) 





mode | flag | ilen | olen 





packet data 








Each item in Figure 2-23 is as follows: 


Mode (8 bit) 
Mode indicates the type of primitive and added attributes. They have the following bit structure: 


Figure 1-24: Mode 
MSB LSB 





CODE OPTION 
































CODE: 3 bit code expressing entities 
001 = Polygon (triangle, quadrilateral) 
010 = Straight line 
011 =Sprite 
OPTION: Varies with the option, bit and CODE values 
(Listed with the list of packet data configurations described later) 


Flag (8 bit) 
Flag indicates option information when rendering and has the following bit configuration: 


File Formats 


3D Graphics 1-13 


Figure 1-25: Flag 





GRD: Valid only for the polygon not textured, subjected to light source calculation 
1: Gradation polygon 
0: Single-color polygon 


FCE: 1: Double-faced polygon 
0: Single-faced polygon 
(Valid, only when the CODE value refers to a polygon.) 


LGT: 1: Light source calculation not carried out 
0: Light source calculation carried out 


llen (8 bit) 
Indicates the length, in words, of the packet data section. 


Olen (8 bit) 
Indicates the word length of the 2D drawing primitives that are generated by intermediate processing. 


Packet Data 
Parameters for verices and normals. Content varies depending on type of primitive. Please refer to “Packet 
data configuration” which will be discussed later. 


VERTEX 


The vertex section is composed of a set of structures representing vertices. The following gives the format 
of one structure. 


Figure 1- 26: Vertex Structure 
MSB LSB 


VY VX 





VZ 


VX, VY, XZ: x, y and z values of vertex coordinates (16-bit integer) 


NORMAL 


The normal section is composed of a set of structures representing normals. The following gives the format 
of one structure. 


Figure 1- 27: Normal Structure 
MSB LSB 


NY NX 





NZ 


NX, NY, NZ: x, y and z components of a normal (16-bit fixed-point value) 
NX, NY and NZ values are signed 16-bit fixed-point values where 4096 is considered to be 1.0. 


File Formats 


1-14 3D Graphics 


Figure 1- 28: Fixed-Point Format 
bit15 14 1211 0 
+ 
/ 


Sign: 1 bit 
Integral part: 3 bits 
Decimal part: 12 bits 


Packet Data Composition Table 
This section lists packet data configurations for each primitive type. 
The following parameters are contained in the packet data section: 


Vertex(n): 
Index value of 16-bit length pointing to a vertex. Indicates the position of the element from the start of the 
vertex section for an object covering the polygon. 


Normal(n) 
Index value of 16-bit length pointing to a normal. Same as Vertex. 


Un, Vn 
X and Y coordinate values on the texture source space for each vertex 


Rn, Gn, Bn 
RGB value representing polygon color being an unsigned 8-bit integer. Without light source calculation, the 
predetermined brightness value must be entered. 


TSB 
Carries information on a texture/sprite pattern. 


Figure 1-29: TSB 
bit15 87654 bit 0 


T A 
coooo ob |È] TPAGE 


TPAGE: Texture page number (0 to 31) 


ABR: Semitransparency rate (Mixture rate). 
Valid, only when ABE is 1. 
00 50%back + 50%polygon 
01 100%back + 100%polygon 
10 100%back - 100%polygon 
11 100%back + 25%polygon 


TPF: Color mode 
00 4 bit 
01 8 bit 
10 15 bit 
CBA: Indicates the position where CLUT is stored in the VRAM. 


File Formats 


3D Graphics 1-15 
Figure 1-30: CBA 
31 16 




















CLX: Upper six bits of 10 bits of X coordinate value for CLUT on the VRAM 
CLY: Nine bits of Y coordinate value for CLUT on the VRAM 


Packet Data Configuration Example-3 Vertex Polygon with Light Source Calculation 


A 3 vertex polygon with light source calculation is shown below. The mode and flag values in this example 
express a one sided polygon with translucency in the OFF state. 


Bit Configuration of Mode Value 
The mode value bit configuration of the primitive section is as follows: 


Figure 1-31: Mode Structure 


Mode value bit configuration 
MSB LSB 


(æ) 
(æ) 
m 
i 
=H 

mD 

mO 





IIP:Shading mode 
0: Flat shading 
1: Gouraud shading 


TME: Texture specification 
0: Off 
1: On 


ABE: Translucency processing 
0: Off 
1: On 


TGE: Brightness calculation at time of texture mapping 
0: On 
1: Off (Draws texture as is) 


Packet Data Configuration 
Packet data configuration is as follows: 


File Formats 


1-16 3D Graphics 


Figure 1-32: Packet Data for Polygons 


Flat (solid color), No-Texture 


0x20 | 0x00 


0x03 | 0x04 


Gouraud (solid color), No-Texture 


0x30 | 0x00 


0x04 | 0x06 








0x20(Note) B 





G R 





0x30(Note) B 





G R 











Vertex0 


Normald 


Vertex0 


Normald 











Vertex2 


Vertex1 


Vertex1 


Normall 





Vertex2 


Normal2 





Gouraud (gradation), No-Texture 
0x30 0x06 
0x30(Note) GO 
Gl R1 
G2 R2 
Normal0 


Flat (gradation), No-Texture 
0x20 | 0x04 | 0x05 
ox20(Note)| BO GO 
Bl Gl Rl 
-- B2 G2 R2 
Vertex0 Normal0 








BO 
Bl 
-- B2 
Vertex0 
Vertex1 
Vertex2 


RO RO 





























Normall 
Normal2 











Gouraud, Texture 
0x34 | 0x00 


Flat, Texture 





























Normald 
Normall 
Normal2 


Vertex0 
Vertex1 
Vertex2 








Vertex0 Normald 
Vertex2 Vertex1 











Note: same value as mode 
In the above example, the values of mode and flag indicate a single-faced polygon and semitransparency 
processing not carried out. 
Packet Data Configuration Example-Polygon with 3 Vertices and No Light Source Calculation 


Bit Configuration of Mode Value 
The primitive section mode value bit configuration is shown below. For the value of each bit please refer to 
“3 vertex polygon with light source calculation.” 


Figure 1-33: Mode Byte 


Mode value bit configuration 











MSB LSB 
| TIA] T 
0 0 1;1;/0;M/B/G 
P EJE/E 


























File Formats 


3D Graphics 1-17 


Packet Data Configuration 
Packet date configuration will be as follows: 






































































































































Figure 1-34 
Flat, No Texture Gouraud, No Texture 
0x21 | 0x01 | 0x03 | 0x04 0x31 | 0x01 | 0x05 | 0x06 
Note B G R Note | BO GO RO 
Vertex1 Vertex0 B1 G1 R1 
Vertex2 B2 G2 R2 
Vertex1 Vertex0 
Vertex2 
Flat, Texture Gouraud, Texture 
0x25 | 0x01 | 0x06 | 0x07 0x35 | 0x01 | 0x08 | 0x09 
CBA vo UO CBA VO UO 
TSB V1 U1 TSB V1 U1 
V2 U2 
BO GO RO 
Vertex1 Vertex0 B1 G1 G1 
Vertex2 B2 G2 G2 
Vertex1 Vertex0 
Note: Has same value as mode. Vertex2 














Packet Data Configuration Example-Polygon with 4 Vertices and Light Source Calculation 


Bit Configuration of Mode Value 
The primitive section mode value bit configuration is shown below. For the value of each bit please refer to 
“3 vertex polygon with light source calculation.” 


Figure 1-35: Mode Byte 
Mode value bit configuration 
MSB LSB 
| TIA 
0 0 1;/!/1]M{B 
LI P EJE 


mO 





Note: Bit 3 is set to 1 to designate a 4-vertex primitive. 


File Formats 


1-18 3D Graphics 
Packet Data Configuration 
Packet data configuration is as follows: 
Figure 1-36: Mode 


Flat (Solid color), No-Texture Gouraud (solid color), No-Texture 
0x28 | 0x00 | 0x04 | 0x05 0x38 | 0x00 











0x28(Note)} B G R 0x38(Note) B 
Vertex0 Normald Vertex0 Normald 




















Vertex2 Vertex1 Vertex1 Normall 
Vertex3 Vertex1 Normal2 
Vertex2 Normal3 




















Flat, (gradation), No-Texture Gouraud (gradation), No-Texture 
0x28 0x38 
0x28(Note) 0x38(Note) BO 
Bl 
B2 
B3 G3 R3 5 B3 
Vertex0 Normal0 Vertex0 Normald 
Vertex2 Vertex1 Vertex1 Normall 
Vertex3 Vertex2 Normal2 
Vertex3 Normal3 






























































Flat, Texture Gouraud, Texture 





























v3 U3 








Vertex0 Normal0 Vertex0 Normal0 
Vertex2 Vertex1 Vertex1 Normall 
Vertex3 Vertex2 Normal2 

Vertex3 Normal3 


Note: same value as mode 


























Packet data configuration example-Polygon with 4 Vertices and No Light Source Calculation 


Bit Configuration of Mode Value 
The primitive section mode value bit configuration is shown below. For the value of each bit please refer to 
“3 angle polygon with light source calculation.” 


Figure 1-37: Mode Byte 


Mode value bit configuration 








MSB LSB 
| TIA|T 
0 0 1;/!1])1)/M/B/G 
P EJE/E 





























Note: Bit 3 is set to 1 to designate a 4-vertex primitive. 


File Formats 


Packet Data Configuration 
Figure 1-38: Packet Data 


Flat, No Texture 


Gouraud, No Texture 
























































































































































0x29 | 0x01 | 0x03 | 0x05 0x39 | 0x01 | 0x06 | 0x08 
Note B G R Note | BO GO RO 
Vertex1 Vertex0 B1 G1 R1 
Vertex3 Vertex2 B2 G2 R2 
B3 G3 R3 
Vertex1 Vertex0 
Vertex3 Vertex2 
Flat, Texture Gouraud, Texture 
0x2d | 0x01 | 0x07 | 0x09 Ox3d | 0x01 | 0x0a | 0x0c 
CBA Vo U0 CBA VO UO 
TSB V1 U1 TSB V1 U1 
V2 U2 V2 U2 
V3 U3 V3 U3 
B G R BO GO RO 
Vertex1 Vertex0 B1 G1 R1 
Vertex3 Vertex2 B2 G2 R2 
B3 G3 R3 
Note: Has same value as mode. Vertex1 Vertex0 
Vertex3 Vertex2 














Packet Data Configuration Example-Straight Line 


Bit Configuration of Mode Value 
The primitive section mode value bit configuration is as follows: 


Figure 1-39: Mode 


IIP; 


ABE: 


Mode value bit configuration 


MSB 


LSB 





0 





| 
1 O;1 | 0 
P 

















mo > 











With or without gradation 


0: Gradation off (Monochrome) 


1: Gradation on 


Translucency processing on/off 


0: off 
1: on 


Packet Data Configuration 
Figure 1- 40: Packet Configuration for “Straight Line” 


Gradation OFF 
0x40 | 0x01 


0x02 | 0x03 


Gradation ON 
0x50 








0x40(Note) B 





G R 





0x50(Note) 








Vertex1 


Vertex0 











Vertex1 Vertex0 








Note: same value as mode 


3D Graphics 1-19 


File Formats 


1-20 3D Graphics 


Packet Data Configuration Example - 3 Dimensional Sprite 
A 3 dimensional sprite is a sprite with 3-D coordinates and the drawing content is the same as a normal 
sprite. 


Bit Configuration of Mode Value 
The primitive section mode value bit configuration is as follows: 


Figure 1-41: Mode 


Mode value bit configuration 
MSB LSB 
TT | A 
0 1 1) SIZ |1 ; 0 





SIZ: Sprite size 
00: Free size (Specified by W, H) 
01:1x1 
10:8x8 
11:16 x 16 


ABE: Translucency processing 
0: Off 
1: On 

Packet Data Configuration 

Packet data configuration is as follows: 


Figure 1- 42: Packet Data for Sprites 







































































Free size 1x1 
0x64 | 0x01 | 0x03 | 0x05 Ox6c | 0x01 | 0x02 | 0x04 
TSB Vertex0 TSB Vertex0 
CBA vo UO CBA Vo UO 
H W 
8x8 16x16 
0x74 | 0x01 | 0x02 | 0x04 Ox7c | 0x01 | 0x02 | 0x04 
TSB Vertex0 TSB Vertex0 
CBA vo UO CBA vo UO 


























File Formats 





Chapter 2: 
2D Graphics 





File Formats 


2-2 


2D Graphics 





TIM: Screen Image Data 


The TIM file covers standard images handled by the PlayStation unit, and can be transferred directly to its 
VRAM. It can be used commonly as sprite patterns and 3D texture mapping materials. 


The following are the image data modes (color counts) handled by the PlayStation unit. 


4-bit CLUT 
8-bit CLUT 
16-bit Direct color 
24-bit Direct color 


e 
e 
e 
e 


The VRAM supported by the PlayStation unit is based on 16 bits. Thus, only 16- and 24-bit data can be 
transferred directly to the frame buffer for display. Use as sprite pattern or polygon texture mapping data 
allows the selection of any of 4-bit, 8-bit and 16-bit modes. 


TIM files have a file header (ID) at the top and consist of several different blocks. 
Figure 2-1: TIM File Format 


31(MSB) O(LSB) 
ID 
FLAG 











CLUT 





Pixel data 











Each data item is a string of 32-bit binary data. The data is Little Endian, so in an item of data containing 
several bytes, the bottom byte comes first (holds the lowest address), as shown in Figure 3-2. 


Figure 2- 2: The order of bytes in a file 


File header or address 


bit31(MSB) bitd (LSB) 


1Word= Bye 








The file ID is composed of one word, having the following bit configuration. 


Figure 2-3: Structure of TIM File Header 


bit31 16 15 8 7 0 (LSB) 
| Reserved (All zero) | Version No. ID 

Bits 0 - 7: ID value is 0x10 

Bits 8 - 15: Version number. Value is 0x00 


File Formats 


2D Graphics 2-3 


Flag 
Flags are 32-bit data containing information concerning the file structure. The bit configuration is as in 
Figure 3-4. 


When a single TIM data file contains numerous sprites and texture data, the value of PMODE is 4 (mixed), 
since data of multiple types is intermingled. 
Figure 2- 4: Flag Word 
bit 31 5 4 3 2 1 O(LSB) 
I 
C 
Reserved (All zero) PMODE 


| a | 
























































Bits 0 -3 (PMODE): Pixel mode (Bit length) 
0: 4-bit CLUT 
1: 8-bit CLUT 
2: 15-bit direct 
3: 24-bit direct 
4: Mixed 


Bit 4 (CF): Whether there is a CLUT or not 
0: No CLUT section 
1: Has CLUT section 


Other: Reserved 


CLUT 


The CF flag in the FLAG block specifies whether or not the TIM file has a CLUT block. A CLUT is a color 
palette, and is used by image data in 4-bit and 8-bit mode. 


As shown in Figure 3-5, the number of bytes in the CLUT (bnum) is at the top of the CLUT block. This is 
followed by information on its location in the frame buffer, image size, and the substance of the data. 


Figure 2-5: CLUT 











bit 31(MSB) bit O(LSB) 
bnum 
DY DX 
H W 





CLUT 1 CLUT 0 








CLUT n | CLUT 
n-1 














bnum Data length of CLUT block. Units: bytes. Includes the 4 bytes of bnum. 


DX x coordinate in frame buffer. 

DY y coordinate in frame buffer. 

H Size of data in vertical direction. 
Ww Size of data in horizontal direction. 


CLUT 1~n CLUT entry (16 bits per entry). 


In 4-bit mode, one CLUT consists of 16 CLUT entries. In 8-bit mode, one CLUT consists of 256 CLUT 
entries. 


File Formats 


2-4 


2D Graphics 


In the PlayStation system, CLUTs are located in the frame buffer, so the CLUT block of a TIM file is handled 
as a rectangular frame buffer image. In other words, one CLUT entry is equivalent to one pixel in the frame 
buffer. In 4-bit mode, one CLUT is handled as an item of rectangular image data with a height of 1 and a 
width of 16; in 8-bit mode, it is handled as an item of rectangular image data with a height of 1 and a width 
of 256. 


One TIM file can hold several CLUTs. In this case, the area in which several CLUTs are combined is placed 
in the CLUT block as a single item of image data. 


The structure of a CLUT entry (= one color) is as follows: 
Figure 2-6: A CLUT entry 


bitl5 14 10 9 5 4 0 (LSB) 
S 
T G 
P oe E 
STP Transparency control bit 
R Red component (5 bits) 
G Green component (5 bits) 
B Blue component (5 bits) 


The transparency control bit (STP) is valid when data is used as Sprite data or texture data. It controls 
whether or not the relevant pixel, in the Sprite or polygon to be drawn, is transparent. If STP is 1, the pixel is 
a semitransparent color, and if STP is other than 1, the pixel is a non-transparent color. 


R, G and B bits control the color components. If they all have the value 0, and STP is also 0, the pixel willl 
be a transparent color. If not, it will be a normal color (non-transparent). 


These relationships can be represented in a table as follows: 
Table 2-1: STP Bit Function in Combination with R, G, B Data 








STP/R,G,B Transucent processing on Translucent processing off 
0,0,0,0 Transparent Transparent 

0,X,X,X Not transparent Not transparent 

1,X,X,X Semi-transparent Not transparent 

1,0,0,0 Non-transparent black Non-transparent black 





Pixel Data 


Pixel data is the substance of the image data. The frame buffer of the PlayStation system has a 16-bit 
structure, So image data is broken up into 16-bit units. The structure of the pixel data block is as shown 
below. 
Figure 2-7: Pixel data 

bit 31(MSB) bit O(LSB) 

bnum 

DY DX 

H W 
DATA 1 DATA 0 





























DATA n DATA n-1 





bnum Data length of pixel data. Units: bytes.Includes the 4 bytes of bnum. 


File Formats 


2D Graphics 2-5 


DX Frame buffer x coordinate 

DY Frame buffer y coordinate 

H Size of data in vertical direction 

Ww Size of data in horizontal direction (in 16-bit units) 


DATA 1~n Frame buffer data (16 bits) 


The structure of one item of frame buffer data (16 bits) varies according to the image data mode. The 
structure for each mode is shown in Figure 3-8. 


Care is needed when handling the size of the pixel data within the TIM data. The W value (horizontal width) 
in Figure 3-7 is in 16-pixel units, so in 4-bit or 8-bit mode it will be, respectively, 1/4 or 1/2 of the actual 
image size. Accordingly, the horizontal width of an image size in 4-bit mode has to be a multiple of 4, and 
an image size in 8-bit mode has to be an even number. 


Figure 2-8: Frame buffer data (pixel data) 
(a) In 4-bit mode 


bit15 12 11 8 7 4 3 


pix 0-3 pixel value (CLUT No.) 
The order on the screen is pix0, 1, 2, 3, starting from the left. 
(b) In 8-bit mode 


fo) 


LSB) 


bitl5 8 7 QLSB) 


pixl pix0 


pix 0-1 pixel value (CLUT No.) 
The order on the screen is pix0, 1, starting from the left. 


(c) In 16-bit mode 
bitl5 14 10 9 5 4 0 


= 


LSB) 


STP transparency control bit (see CLUT) 
R Red component (5 bits) 


(e9) 


Green component (5 bits) 


w 


Blue component (5 bits) 
(d) In 24-bit mode: 


bit15 O(LSB) 
GO RO 
R1 BO 
B1 G1 









































File Formats 


2-6 2D Graphics 


RO,R1 Red component (8 bits) 
G0O,G1 Green component (8 bits) 
BO,B1 Blue component (8 bits) 


In 24-bit mode, 3 items of 16-bit data correspond to 2 pixels’ worth of data. (RO, GO, BO) indicate the pixels 
on the left, and (R1, R2, B1) indicate the pixels on the right. 


File Formats 





Chapter 3: 
Sound 





File Formats 


3-2 Sound 





SEQ: PS Sequence Data 


SEQ is the PlayStation sequence data format. The typical extension in DOS is “.SEQ”. 
Figure 3-1: SEQ Format 




















Byte count 
ID (SEQp) 4 
Version 4 
Resolution of quarter note |2 
Tempo 3 
Rhythm 2 
Any 
Score data 
End of SEQ 3 





File Formats 


Sound 3-3 





VAG: PS Single Waveform Data 


VAG is the PlayStation single waveform data format for ADPCM-encoded data of sampled sounds, such as 
piano sounds, explosions, and music. The typical extension in DOS is “VAG”. 


Figure 3-2: VAG Format 























Byte count 
ID (VAGp) 4 
Version 4 
Reserved 4 
Data size (Bytes) 4 
Sampling frequency 4 
Reserved 12 
Name he 

A@Any 


Waveform data 








VAB: PS Sound Source Data 


The VAB file format is designed to manage multiple VAG files as a single group. It is a sound processing 
format that is handled as a single file at runtime. 


A VAB file contains all of the sounds, sound effects, and other sound-related data actually used in a scene. 
Hierarchical management is used to support multitimbral (multisampling) functions. 


Each VAB file may contain up to 128 programs. Each of these programs can contain up to 16 tone lists. 
Also, each VAB file can contain up to 254 VAG files. 


Since it is possible for multiple tone lists to reference the same waveform, users are able to set different 
playback parameters for the same waveform, thus giving the same waveform different sounds. 


File Formats 


3-4 Sound 


Organization 
A VAB format file is organized as follows: 
Figure 3-3: VAB Format 






























































Byte count 
ID (VABp) 4 
Version 4 
VAB ID 4 
Waveform size 4 
System reserved 2 
Number of programs 2 
Gag Number of tones 2 
header VAG count 2 
oe Master volume 1 
Master pan 1 
Bank attribute 1 (user defined) |1 
Bank attribute 2 (user defined) | 1 
System reserved 4 
Program attribute table 16 x 128 (Max programs)“ 
Tone attribute table 32 x 16 (Max tones) x number of programs* 
VAG offset table 512 
VAG (0) Any (Up to 516,096) 
VAB EG D 
body 
(VB) VAG (VAG count) 
* See (b) in Structure 


** See (c) in Structure 


Structure 


The structure of a VAB header is as follows. It is possible to set each attribute dynamically using this 
structure at the time of execution. 


(a) VabHdr structure is contained within the first 32 bytes (See libsnd in the Library Reference for details.). 

(b) ProgAtr structure for 128 programs is contained in the program attribute table (See libsnd in the Library 
Reference for details.). 

(c) VagAtr structure for each tone is contained in the tone attribute table (See libsnd in the Library 
Reference for details.). 

(d) VAG offset table contains 3-bit right-shifted VAG data size stored in short (16 bit). For example: 


File Formats 


Sound 3-5 








Table 3-1 
VAG# 0 1 2 
VAG offset table 0x1000 0x0800 0x0200 
Actual size 0x8000 0x4000 0x1000 
Offset 0x8000 0xc000 0xd000 





File Formats 


3-6 Sound 


File Formats